Docker |
您所在的位置:网站首页 › docker mysql数据会保存下来吗 › Docker |
目录 一,宿主机与容器之间的文件拷贝 1.1 容器中怎么上传项目(文件) 1.2 从宿主机拷贝文件到容器 1.3 从容器中拷贝文件到宿主机 二 数据卷 三 数据卷容器 四 Dockerfile Dockerfile制作增强版 自定义centos 具备vim以及ifconfig Dockerfile制作自定义tomcat 一,宿主机与容器之间的文件拷贝引言:利用MySQL镜像安装MySQL服务 docker run -p 3307:3306 --name mysql1 -di -v /home/javaxl/data/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/javaxl/data/mysql/data/:/var/lib/mysql -v /home/javaxl/data/mysql/log/:/var/log -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 将项目上传到tomcat的webapps中 若没有tomcat可以先进行下载 下载tomcat docker run -it --name tomcat3 tomcat:8 /bin/bash 退出容器(不会停止容器 所以下一步查看的容器中有tomcat的话就不用再次运行了) ctr+p+q 查看正在使用的容器 docker ps 使用过的容器 docker ps -a 运行tomcat容器 docker start tomcat3 进入容器 docker exec -it tomcat3 /bin/bash 进入webapps目录 cd webapps 宿主机目录下的tomcat为手动提前备好的文件 docker cp /javaxl/software/mydocker/apache-tomcat-8.5.20.tar.gz tomcat3:/usr/local/tomcat/webapps 1.3 从容器中拷贝文件到宿主机再这之前时 已经在容器的tomcat/webapps目录下创建了一个111.log 文件 进入容器 docker exec -it tomcat3 /bin/bash 进入webapps目录 cd webapps 创建文件111.log touch 111.log 模拟将日志文件移至外部的宿主机目录下的情况 但是这是比较麻烦的 而且做不到实时更新日志 只有拷贝过来时的日志 docker cp tomcat3:/usr/local/tomcat/webapps/111.log /javaxl/software/mydocker 二 数据卷将宿主机的目录与容器的目录进行挂载,实现数据共享 docker run -di --name c2 -v /home/xl/data/ 宿主机目录 :/home/may/data/ 容器的指定目录 centos:7 建一个centos:7的服务 我们正在使用的就是centos:7的服务 也就是说在centos:7 的服务下再建一个虚拟的centos:7的服务器 docker run -di --name c2 -v /home/xl/data/:/home/may/data/ centos:7 因为上传超时 截了超时的图 有点模糊还请见谅 结论:不管宿主机、容器在指定目录创建文件夹还是文件,都会会被共享; 三 数据卷容器docker run -di -v /home/javaxl/data/c4 --name c4 centos:7 docker run -di --volumes-from c4 --name c6 centos:7 其中c4为数据卷容器,c6为普通容器,其中c4就起到一个桥接作用 我们可以通过docker inspect查看容器的详细情况 docker inspect c4 docker inspect c6 c4 c6 会发现c4、c6目录挂载情况是一样的 结论:不管c4、c6在指定目录创建文件夹还是文件,都会会被共享; 四 Dockerfile Dockerfile制作增强版 自定义centos 具备vim以及ifconfig举例 我们用下载的centos:7镜像 运行一个容器 是没有vim命令的 只有vi 所以我们可以自定义centos 具备vim以及ifconfig作用vi mycentosDockerfile 向 mycentosDockerfile 编辑内容 FROM centos:7 依靠centos:7 进行增强 MAINTAINER javaxl "[email protected]" 创造者备注 RUN yum -y install vim 下载vim命令 RUN yum install net-tools.x86_64 -y 下载 ifconfig命令 CMD /bin/bash 进入容器的方法 FROM centos:7 MAINTAINER javaxl "[email protected]" RUN yum -y install vim RUN yum install net-tools.x86_64 -y CMD /bin/bash 构建镜像 docker build -f mycentosDockerfile(若此处名为Dockerfile 则可省略) -t javaxl/centos:v1.0 . docker build -f mycentosDockerfile -t javaxl/centos:v1.0 . 通过镜像运行一个容器进行测试 docker run -it --name mc1 javaxl/centos:v1.0 /bin/bash 成功创建!!! Dockerfile制作自定义tomcat![]() 非自定义的tomcat不可访问 第一步: vi mytomcatDockerfile 第二步: 向 mytomcatDockerfile 编辑内容 FROM centos:7 MAINTAINER javaxl "[email protected]" ENV workerDir /home/javaxl/dockerfile/3 WORKDIR $workerDir ADD jdk-8u151-linux-x64.tar.gz $workerDir COPY apache-tomcat-8.5.20.tar.gz $workerDir RUN tar -xvf apache-tomcat-8.5.20.tar.gz apache-tomcat-8.5.20 ENV JAVA_HOME $workerDir/jdk1.8.0_151 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV TOMCAT_HOME $workerDir/apache-tomcat-8.5.20 ENV PATH $JAVA_HOME/bin:$TOMCAT_HOME/bin:$TOMCAT_HOME/lib:$PATH EXPOSE 8080 ENTRYPOINT ["/home/javaxl/dockerfile/3/apache-tomcat-8.5.20/bin/catalina.sh","run"] 注意其中的: ADD jdk-8u151-linux-x64.tar.gz $workerDir 添加进入工作目录并解压 COPY apache-tomcat-8.5.20.tar.gz $workerDir 添加进工作目录不解压力 以及准备jdk 第三步: 构建镜像 docker build -f mytomcatDockerfile -t javaxl/tomcat8:v1.0 . 第四步: 通过镜像运行2个容器进行测试 docker run -di --name mt1 -P javaxl/tomcat8:v1.0 docker run -di --name mt2 -P javaxl/tomcat8:v1.0 第五步: 浏览器输入 两个都可以访问 http://192.168.195.139:49153/ http://192.168.195.139:49154/ 但是此jdk是不可控的 只做自定义tomcat演示 之后再为大家讲解如何让端口可控 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |